package com.jstarcraft.core.antlr;

import org.antlr.v4.runtime.tree.ParseTreeVisitor;

/**
 * This interface defines a complete generic visitor for a parse tree produced
 * by {@link CalculatorParser}.
 *
 * @param <T> The return type of the visit operation. Use {@link Void} for
 *            operations with no return type.
 */
public interface CalculatorVisitor<T> extends ParseTreeVisitor<T> {
    /**
     * Visit a parse tree produced by {@link CalculatorParser#formula}.
     * 
     * @param ctx the parse tree
     * @return the visitor result
     */
    T visitFormula(CalculatorParser.FormulaContext ctx);

    /**
     * Visit a parse tree produced by {@link CalculatorParser#number}.
     * 
     * @param ctx the parse tree
     * @return the visitor result
     */
    T visitNumber(CalculatorParser.NumberContext ctx);
}